#include <stdio.h>
#include <string.h>
#include <graphics.h>
#include <stdlib.h>

#include "Constante.h"

typedef struct
{
    int numero;
    char pseudo[15];
    int score;
    char niveau[15];
    char temps[15];
}Personne;

int main ();


void option()
{
    initwindow(LONGEUR_FENETRE,LARGEUR_FENETRE,"Tetris");
}

void test()
{

}


int charge (char filename[],Personne *p)
{
    int i;
    int nb;
    FILE *pfichier = fopen(filename,"r");
    if (pfichier !=NULL)
    {
        fscanf(pfichier,"%d",&nb) ;
        printf("nb de lignes = %i\n",nb);
        for (i=0;i<nb;i++)
        {
             fscanf(pfichier,"%s %d %s %s",p[i].pseudo , &p[i].score, p[i].niveau, p[i].temps);
        }
    }
    else
    {
        printf("impossible d'ouvrir le fichier");
    }
    fclose(pfichier);
    return (i);
}

 void affiche (int nb, Personne *p)
 {
    int posx[2]={80,720};
    int posy[2]={600,600};
    char image[2][50] = {"images/ne-rien-faire.gif","images/backmenu.gif"};
    char image1[2][50] = {"images/ne-rien-faire1.gif","images/backmenu1.gif"};
    int tailledutextex=LONGEUR_FENETRE*0.371;
    int tailledutextey= LARGEUR_FENETRE*0.1388;

    initwindow(LONGEUR_FENETRE,LARGEUR_FENETRE,"Tetris - Meilleurs scores");
    int i=0,v=0,k,j=0,bouge=0,dx=1;
    char buffer[10];
    while(1)
    {
        v=0;
        readimagefile("images/background2.jpg",0,0,LONGEUR_FENETRE,LARGEUR_FENETRE);
        readimagefile("images/meilleurs-scores.gif",380,0,380+500,0+100);
        if (nb>5)nb=5;
        for(i=0;i<nb;i++)
        {
            settextstyle(6,0,6);
            outtextxy(100,150+v,p[i].pseudo);
            outtextxy(500,150+v,p[i].niveau);
            itoa (p[i].score,buffer,10);
            outtextxy(700,150+v,p[i].temps);
            outtextxy(900,150+v,buffer);
            v=v+80;
        }
        for (k=0;k<2;k++)
            {
                if (j==k)
                {
                    readimagefile(image1[k],posx[k]+bouge,posy[k],posx[k]+tailledutextex+bouge,posy[k]+tailledutextey);
                    bouge=bouge+dx;
                    if (bouge==10 || bouge ==-10)dx=-dx;
                }
                else
                {
                    readimagefile(image[k],posx[k],posy[k],posx[k]+tailledutextex,posy[k]+tailledutextey);
                }
            }

            if (GetAsyncKeyState(VK_LEFT))
                {
                    if (j==1)
                    {
                        j=-1;
                    }
                    j++;
                }
                if (GetAsyncKeyState(VK_RETURN))
                {
                    if (j==1)
                    closegraph();
                    main();

                }

            if (GetAsyncKeyState(VK_RIGHT))
                {
                    if (j==0)
                    {
                        j=2;
                    }
                    j--;
                }
                if (GetAsyncKeyState(VK_RETURN))
                {
                   if (j==1)
                    closegraph();
                    main();

                }

    delay(50);
    swapbuffers();
    }

 }

void meilleursScores()
{

    char mots[TAILLEMAX ][26];
    char filename [20] = "MeilleursScores.txt";
    Personne p[50];
    int i = charge (filename,p);
    affiche(i,p);
    getch();
}

int main ()
{
    int color=0,sourisx,sourisy,i=0,j=1;
    int long1=0;
    int large1=0;
    int colortext[50];
    char msg[100];
    initwindow(LONGEUR_FENETRE,LARGEUR_FENETRE,"Tetris");

    if (colortext[49]!=7)
    {
    for (i=0;i<50;i++)
    colortext[i]=7;
    colortext[1]=2;
    }

    int k,z;
    int placementtext;
    int tailledutextex=LONGEUR_FENETRE*0.371;
    int tailledutextey= LARGEUR_FENETRE*0.1388;
    int placementtextx=LONGEUR_FENETRE*0.105;
    int cordonneplacementtexty= LARGEUR_FENETRE*(-0.0694);
    int placementtexty[6];
    for (i=0;i<6;i++)
    placementtexty[i]= cordonneplacementtexty*(i+1);
    int bouge=0;
    int dx=1;
    char image[5][50] = {"images/nouvelle-partie.gif","images/meilleurs-scores.gif","images/option.gif","images/credits.gif","images/exit.gif"};
    char image1[5][50] = {"images/nouvelle-partie1.gif","images/meilleurs-scores1.gif","images/option1.gif","images/credits1.gif","images/exit1.gif"};
    int placementx[5];
    int placementy[5];
    int taillecarre=LARGEUR_FENETRE*0.243;
    int posx[5]={LONGEUR_FENETRE*0.03123,LONGEUR_FENETRE*0.03123,LONGEUR_FENETRE*0.625,LONGEUR_FENETRE*0.625,LONGEUR_FENETRE*0.321};
    int posy[5]={LARGEUR_FENETRE*0.6388,LARGEUR_FENETRE*0.76388,LARGEUR_FENETRE*0.6388,LARGEUR_FENETRE*0.76388,LARGEUR_FENETRE*0.8611};
    while(1)
    {
            readimagefile("images/background2.jpg",0,0,LONGEUR_FENETRE,LARGEUR_FENETRE);
            placementtext=LARGEUR_FENETRE*0.229;
            readimagefile("images/ttetris.gif",placementtextx,placementtexty[0],placementtextx+taillecarre,placementtexty[0]+taillecarre);
            readimagefile("images/etetris.gif",placementtextx+taillecarre+taillecarre*0.23,placementtexty[1],placementtextx+taillecarre+taillecarre+taillecarre*0.23,placementtexty[1]+taillecarre);
            readimagefile("images/ttetris2.gif",placementtextx+taillecarre*2,placementtexty[2],placementtextx+taillecarre*2+taillecarre,placementtexty[2]+taillecarre);
            readimagefile("images/rtetris.gif",placementtextx+taillecarre*3+taillecarre*0.23,placementtexty[3],placementtextx+taillecarre*3+taillecarre+taillecarre*0.23,placementtexty[3]+taillecarre);
            readimagefile("images/itetris.gif",placementtextx+taillecarre*4,placementtexty[4],placementtextx+taillecarre*4+taillecarre,placementtexty[4]+taillecarre);
            readimagefile("images/stetris.gif",placementtextx+taillecarre*5,placementtexty[5],placementtextx+taillecarre*5+taillecarre,placementtexty[5]+taillecarre);
            for (z=0;z<6;z++)
            {
                if (placementtexty[z]<(LARGEUR_FENETRE*0.229))
                placementtexty[z]=placementtexty[z]+3;
            }
            for (k=0;k<5;k++)
            {
                if (j-1==k)
                {
                    readimagefile(image1[k],posx[k]+bouge,posy[k],posx[k]+tailledutextex+bouge,posy[k]+tailledutextey);
                    bouge=bouge+dx;
                    if (bouge==10 || bouge ==-10)dx=-dx;

                }
                else
                {
                    readimagefile(image[k],posx[k],posy[k],posx[k]+tailledutextex,posy[k]+tailledutextey);
                }
            }

            if (GetAsyncKeyState(VK_DOWN))
                {
                    if (j==5)
                    {
                        j=0;
                    }
                    j++;
                }
                if (GetAsyncKeyState(VK_RETURN))
                {
                    if (j==1)
                    {closegraph();
                    test();}
                    else if (j==2)
                    {closegraph();
                    meilleursScores();}
                    else if (j==3)
                    option();
                    else if (j==4)
                    test();
                    else if (j==5)
                    test();
                    else if (j==6)
                    test();
                    else
                    return 0;
                }

            if (GetAsyncKeyState(VK_UP))
                {
                    if (j==1)
                    {
                        j=6;
                    }
                    j--;
                }
                if (GetAsyncKeyState(VK_RETURN))
                {
                   if (j==1)
                    {closegraph();
                    test();}
                    else if (j==2)
                    {closegraph();
                    meilleursScores();}
                    else if (j==3)
                    option();
                    else if (j==4)
                    test();
                    else if (j==5)
                    test();
                    else if (j==6)
                    test();
                    else
                    return 0;
                }
            //delay(50);

            /*for (i=0;i<100;i++)
            {
                line (0,long1,LONGEUR_FENETRE,long1);
                line (large1,0,large1,LARGEUR_FENETRE);
                long1=long1+20;
                large1=large1+20;
            }
            long1=0;
            large1=0;*/

            swapbuffers();
    }
    system("pause");
}
